From: Thore Sommer Date: Mon, 2 Sep 2024 08:39:46 +0000 (+0200) Subject: status/network: Add user permissions to new wifi connections X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~204^2^2~24 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=cdf0e5fc6ecfc3c62223af67d9f72692a3f97dff;p=gnome-shell.git status/network: Add user permissions to new wifi connections When creating a new NM connection they are by default system connections. A user cannot create them if they don't have the correct polkit permissions (org.freedesktop.NetworkManager.settings.modify.system). If a user tried to add a new connection in the drop down menu, then they got no password prompt and NM logged the following: [...] audit: op="connection-add-activate" pid=1872 uid=1000 result="fail" \ reason="Insufficient privileges" This change adds the current user to the user permissions for the new connection, if the user has no permissions to modify the system connections, which copies the behavior of GNOME Settings. Part-of: --- diff --git a/js/ui/status/network.js b/js/ui/status/network.js index 33150afd5..aca241827 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -949,6 +949,15 @@ const WirelessNetwork = GObject.registerClass({ this._getDeviceDBusPath(), ap.get_path()); } else { conn = new NM.SimpleConnection(); + const permission = Polkit.Permission.new_sync('org.freedesktop.NetworkManager.settings.modify.system', null, null); + let allowedToShare = false; + if (permission) + allowedToShare = permission.get_allowed(); + if (!allowedToShare) { + const setting = new NM.SettingConnection(); + setting.add_permission('user', GLib.get_user_name(), null); + conn.add_setting(setting); + } this._device.client.add_and_activate_connection_async( conn, this._device, ap.get_path(), null, null); }